perm filename UPDATE.SAI[REV,MUS] blob
sn#242156 filedate 1977-05-24 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00003 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 PROCEDURE unit_print(
C00004 00003 PROCEDURE update_display(
C00007 ENDMK
C⊗;
PROCEDURE unit_print(
INTEGER position, pog;
RECORD_POINTER(REV_UNIT) unit;
BOOLEAN header(FALSE));
BEGIN "unit print"
INTEGER wid, dig;
STRING text;
IF
header
THEN BEGIN
display(UNIT_LABEL_POS,
" Delay Gain Time #Samples Wall Frequency Clock",
UNIT_LABEL_PIECE
);
RETURN;
END;
IF
unit = NULL_RECORD
THEN BEGIN
display(position,"[Input Signal]",pog);
RETURN;
END;
GETFORMAT(wid,dig);
text ← NULL;
SETFORMAT(6,2);
text ← text&(" "&CVF(get_spec(unit,"delay")*1000.0)&"ms");
SETFORMAT(5,3);
text ← text&(" "&CVF(get_spec(unit,"gain")));
SETFORMAT(5,2);
text ← text&(" "&CVF(get_spec(unit,"decay"))&"sec");
SETFORMAT(4,0);
text ← text&(" "&CVS(get_spec(unit,"#samples")));
SETFORMAT(6,2);
text ← text&(" "&CVF(get_spec(unit,"wall"))&"m");
SETFORMAT(9,2);
text ← text&(" "&CVF(get_spec(unit,"frequency"))&"Hz");
SETFORMAT(6,0);
text ← text&(" "&CVS(get_spec(unit,"rate"))&"/sec");
display(position,text,pog);
SETFORMAT(wid,dig);
END "unit print";
PROCEDURE update_display(
RECORD_POINTER(REV_TREE) the_tree;
RECORD_POINTER(REV_UNIT) the_unit;
REFERENCE INTEGER the_previous_position;
REFERENCE BOOLEAN the_unit_update_flag,
the_tree_update_flag,
the_move_update_flag,
the_refresh_flag;
BOOLEAN the_nearest_prime_flag);
BEGIN "update display"
RECORD_POINTER(REV_UNIT) the_tree_unit;
RECORD_POINTER(REV_TREE) tree;
RECORD_POINTER(REV_UNIT) unit;
INTEGER line, level, indent;
BOOLEAN branching;
SAFE OWN INTEGER ARRAY PPINFO[0:24];
∂ Do a PPINFO uuo and check whether the display was manually cleared.;
CODE('702240000000,PPINFO[0]);
the_refresh_flag ← the_refresh_flag ∨
(PPINFO[2] LAND '200000000000);
IF
the_refresh_flag
THEN BEGIN
unit_print(UNIT_LABEL_POS,UNIT_LABEL_PIECE,NULL_RECORD,TRUE);
END;
IF
the_unit_update_flag
∨
the_refresh_flag
THEN BEGIN
unit_print(UNIT_POS,UNIT_PIECE,the_unit);
the_unit_update_flag ← FALSE;
END;
IF
the_tree_update_flag
∨
the_refresh_flag
THEN BEGIN
tree_print(the_tree);
the_tree_update_flag ← FALSE;
the_move_update_flag ← TRUE;
END;